#ifndef PORTMONITORWINDOWS_H
#define PORTMONITORWINDOWS_H

#include "portmonitor.h"
#include <windows.h>
#include <QAbstractNativeEventFilter>

class PortMonitorWindows : public PortMonitor, QAbstractNativeEventFilter
{
    Q_OBJECT
private:
    static const GUID GUID_DEVINTERFACE_LIST[];

public:
    explicit PortMonitorWindows(QList<PortFilterInfo> filters, QObject *parent = nullptr);

    virtual void onStartMonitor(void* win) override;
    virtual void onStopMonitor() override;

    virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override;
};

#endif // PORTMONITORWINDOWS_H
